import pytest
import requests

# 该session对象可以帮助我们自动管理和传递cookie
# 后续的接口调用都必须使用session对象发起
session = requests.session()


@pytest.fixture(scope="class")
def cookie_login_fixture():
    cookie_login()
    print("登录成功")


def cookie_login(username='leopold', password="123456"):
    url = "http://127.0.0.1:8080/pinter/bank/api/login"
    data = {
        "userName": username,
        "password": password
    }
    # resp = requests.request(method='post', url=url, data=data)
    resp = session.request(method='post', url=url, data=data)
    # 获取响应状态码
    status_code = resp.status_code
    print(f"响应状态码是:{status_code}")
    # 如果响应数据本身是一个json形式的数据，那么还可以以json格式获取
    resp_json = resp.json()  # 得到的结果有可能是字典也有可能是列表
    print(f'响应数据json形式是:{resp_json}')
    return resp


def cookie_query(username="leopold"):
    url = "http://127.0.0.1:8080/pinter/bank/api/query"
    params = {
        "userName": username
    }
    # resp = requests.request(method='get', url=url, params=params)
    resp = session.request(method='get', url=url, params=params)
    # 获取响应状态码
    status_code = resp.status_code
    print(f"响应状态码是:{status_code}")
    resp_json = resp.json()  # 得到的结果有可能是字典也有可能是列表
    print(f'响应数据json形式是:{resp_json}')
    return resp


def cookie_logout(username='leopold'):
    url = "http://127.0.0.1:8080/pinter/bank/api/logout"
    params = {
        "userName": username
    }
    # resp = requests.request(method='get', url=url, params=params)
    resp = session.request(method='get', url=url, params=params)
    status_code = resp.status_code
    print(f"响应状态码是:{status_code}")
    resp_json = resp.json()  # 得到的结果有可能是字典也有可能是列表
    print(f'响应数据json形式是:{resp_json}')
    return resp


if __name__ == '__main__':
    cookie_login()
    cookie_query()
    cookie_logout()
